home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 2
/
Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso
/
Aminet
/
dev
/
asm
/
TBSource.lha
/
BlinyzPlay
/
BP.S
< prev
next >
Wrap
Text File
|
1993-07-02
|
24KB
|
1,191 lines
*************************************************
* *
* (C)opyright 1992 *
* *
* by Tomi Blinnikka *
* *
* Don´t try to understand the code *
* *
* Version 0.01 14/04/1992 *
* -0.99ö *
* *
* BUGS: No menus. Didn't work from WB. *
* *
* Version 1.00 19/04/1992 *
* *
* BUGS: Har har har... Menu problem fixed: *
* the mouse wasn't connected properly... *
* Iconify from WB didn't work. *
* *
* Version 1.01 07/05/1992 *
* *
* BUGS: Version string incompatible. *
* *
* Version 1.02 05/06/1992 *
* *
* BUGS: *
* *
* Version 1.03 10/06/1992 *
* *
* BUGS: *
* *
*************************************************
INCLUDE "JMPLibs.i"
INCLUDE "exec/types.i"
INCLUDE "exec/memory.i"
INCLUDE "exec/tasks.i"
INCLUDE "libraries/dosextens.i"
INCLUDE "libraries/dos.i"
INCLUDE "libraries/gadtools.i"
INCLUDE "workbench/startup.i"
INCLUDE "XREF:2.0.xref"
INCLUDE "XREF:intuition.xref"
INCLUDE "XREF:exec.xref"
INCLUDE "XREF:dos.xref"
INCLUDE "XREF:icon.xref"
XREF _CreatePort
XREF _DeletePort
XREF _CreateExtIO
XREF _DeleteExtIO
XDEF _DOSBase
XDEF _SysBase
DIntuition set 1
DirTop: EQU 1
ListTop: EQU 14
OptionTop: EQU 96
TRUE: EQU 1
section RD,CODE
push d2-d7/a2-a6
push d0/a0
sub.l a1,a1 ;Find our task
lib Exec,FindTask
move.l d0,OurTask
move.l d0,a4
move.l pr_CLI(a4),d0
bne OpenDos
add.l #8,sp
lea.l pr_MsgPort(a4),a0
lib Exec,WaitPort
lea.l pr_MsgPort(a4),a0
lib Exec,GetMsg
move.l d0,WBMsg
OpenDos: openlib Dos,NoDos ;Keep at beginning
tst.l WBMsg
beq CLIStart
lea.l NILName,a0
move.l a0,d1
move.l #MODE_NEWFILE,d2
lib Dos,Open
move.l d0,NILFile
beq ShutDown
move.l NILFile,_stdout
beq NoNIL
openlib Icon,NoIcon
move.l WBMsg,a0
move.l sm_ArgList(a0),a1
move.l wa_Lock(a1),d1
lib Dos,CurrentDir
move.l d0,OldLock
move.l WBMsg,a0
move.l sm_ArgList(a0),a1
move.l wa_Name(a1),a0
lib Icon,GetDiskObject
move.l d0,DiskObject
beq MainStart
move.l DiskObject,a4
move.l $36(a4),a0 ;do_ToolTypes
lea.l ICONIFYText1,a1
lib Icon,FindToolType
tst.l d0
beq DoToolType3
move.l d0,a0
lea.l YESText1,a1
lib Icon,MatchToolValue
tst.l d0
beq DoToolType3
move.w #1,Iconify
DoToolType3: bra MainStart
CLIStart: lib Dos,Output
move.l d0,_stdout
pull d0/a0
clr.b -1(a0,d0.l)
cmp.b #"?",(a0)
beq Usage
cmp.w #'-h',(a0)
beq Usage
cmp.w #'-i',(a0)
bne MainStart
move.w #1,Iconify
add.l #2,a0
MainStart: move.l _DosBase,_DOSBase ;need this also to check
move.l $4,_SysBase ;so don't quit MPlay
;when looking at usage...
move.l #37,d0
move.l $4,a6
lea.l _IntuitionLib,a1
jsr _LVOOpenLibrary(a6)
move.l d0,_IntuitionBase
beq NoKS20
openlib GadTools,NoGadTools
bsr LockPubScr
tst.l PubScreen
beq NoPubScreen
;Get visualinfo
move.l PubScreen,a0
sub.l a1,a1
lib GadTools,GetVisualInfoA
move.l d0,vi
;Make gadget stuff
lea.l glist,a0
lib GadTools,CreateContext
move.l d0,ContextGad2
beq NoContextGad
move.l glist,a0
lea.l NGDirGad,a1
move.l #CYCLE_KIND,d0
move.l vi,gng_VisualInfo(a1)
lea.l DirGadTagList,a2
lib GadTools,CreateGadgetA
move.l d0,a0
move.l a0,DirGad1
add.w d5,gg_TopEdge(a0)
lea.l NGFirstGad,a1
move.l #BUTTON_KIND,d0
move.l vi,gng_VisualInfo(a1)
lea.l GadTagList,a2
lib GadTools,CreateGadgetA
move.l d0,a0
move.l a0,FirstGad1
add.w d5,gg_TopEdge(a0)
lea.l NGSecondGad,a1
move.l #BUTTON_KIND,d0
move.l vi,gng_VisualInfo(a1)
lea.l GadTagList,a2
lib GadTools,CreateGadgetA
move.l d0,a0
move.l a0,SecondGad1
add.w d5,gg_TopEdge(a0)
lea.l NGThirdGad,a1
move.l #BUTTON_KIND,d0
move.l vi,gng_VisualInfo(a1)
lea.l GadTagList,a2
lib GadTools,CreateGadgetA
move.l d0,a0
move.l a0,ThirdGad1
add.w d5,gg_TopEdge(a0)
lea.l NGFourthGad,a1
move.l #BUTTON_KIND,d0
move.l vi,gng_VisualInfo(a1)
lea.l GadTagList,a2
lib GadTools,CreateGadgetA
move.l d0,a0
move.l a0,FourthGad1
add.w d5,gg_TopEdge(a0)
lea.l NGFifthGad,a1
move.l #BUTTON_KIND,d0
move.l vi,gng_VisualInfo(a1)
lea.l GadTagList,a2
lib GadTools,CreateGadgetA
move.l d0,a0
move.l a0,FifthGad1
add.w d5,gg_TopEdge(a0)
lea.l NGSixthGad,a1
move.l #BUTTON_KIND,d0
move.l vi,gng_VisualInfo(a1)
lea.l GadTagList,a2
lib GadTools,CreateGadgetA
move.l d0,a0
move.l a0,SixthGad1
add.w d5,gg_TopEdge(a0)
lea.l NGSeventhGad,a1
move.l #BUTTON_KIND,d0
move.l vi,gng_VisualInfo(a1)
lea.l GadTagList,a2
lib GadTools,CreateGadgetA
move.l d0,a0
move.l a0,SeventhGad1
add.w d5,gg_TopEdge(a0)
lea.l NGEighthGad,a1
move.l #BUTTON_KIND,d0
move.l vi,gng_VisualInfo(a1)
lea.l GadTagList,a2
lib GadTools,CreateGadgetA
move.l d0,a0
move.l a0,EighthGad1
add.w d5,gg_TopEdge(a0)
lea.l NGQuitGad,a1
move.l #BUTTON_KIND,d0
move.l vi,gng_VisualInfo(a1)
lea.l GadTagList,a2
lib GadTools,CreateGadgetA
move.l d0,a0
move.l a0,QuitGad1
or.w #GRELRIGHT,gg_Flags(a0)
add.w d5,gg_TopEdge(a0)
move.b #1,GadMagic ;Make worked OK
;New style menu stuff
lea.l MNProjectMenu1,a0
lea.l MenuTagList,a1
lib GadTools,CreateMenusA
move.l d0,mlist
beq NoMenus
move.l mlist,a0
move.l vi,a1
lea.l MenuTagList,a2
lib GadTools,LayoutMenusA
move.b #1,MenuMagic
bsr OpenWin1
tst.l Window1
beq NoWindow1
;Unlock PubScreen
sub.l a0,a0
move.l PubScreen,a1
lib Intuition,UnlockPubScreen
clr.l PubScreen
Window1IDCMP: move.l Window1,a0
bsr CheckIDCMP
cmp.l #CLOSEWINDOW,d2
beq ShutDown
cmp.l #GADGETUP,d2
beq DoGads
cmp.l #MENUPICK,d2
beq Win1Menus
cmp.l #VANILLAKEY,d2
beq VanillaKeys
bra Window1IDCMP
Win1Menus: bsr MenuNull
cmp.w #$00,d6
beq Win1Menus1
bra Window1IDCMP
Win1Menus1: cmp.w #$00,d5
beq About
cmp.w #$02,d5
beq ShutDown
bra Window1IDCMP
VanillaKeys: cmp.w #$1b,d3
beq ShutDown
cmp.w #'Q',d3 ;upper case
beq ShutDown
cmp.w #'L',d3
beq DoFirst
cmp.w #'W',d3
beq DoSecond
cmp.w #'I',d3
beq DoThird
cmp.w #'B',d3
beq DoFourth
cmp.w #'S',d3
beq DoFifth
cmp.w #'T',d3
beq DoSixth
cmp.w #'E',d3
beq DoSeventh
cmp.w #'N',d3
beq DoEighth
; cmp.w #'',d3
; beq DoNinth
; cmp.w #'',d3
; beq DoTenth
cmp.w #'q',d3 ;lower case
beq ShutDown
cmp.w #'l',d3
beq DoFirst
cmp.w #'w',d3
beq DoSecond
cmp.w #'i',d3
beq DoThird
cmp.w #'b',d3
beq DoFourth
cmp.w #'s',d3
beq DoFifth
cmp.w #'t',d3
beq DoSixth
cmp.w #'e',d3
beq DoSeventh
cmp.w #'n',d3
beq DoEighth
; cmp.w #'',d3
; beq DoNinth
; cmp.w #'',d3
; beq DoTenth
bra Window1IDCMP
DoGads: cmp.w #99,$26(a5)
beq ShutDown
cmp.w #1,$26(a5)
beq ChangeDirMode
cmp.w #10,$26(a5)
beq DoFirst
cmp.w #20,$26(a5)
beq DoSecond
cmp.w #30,$26(a5)
beq DoThird
cmp.w #40,$26(a5)
beq DoFourth
cmp.w #50,$26(a5)
beq DoFifth
cmp.w #60,$26(a5)
beq DoSixth
cmp.w #70,$26(a5)
beq DoSeventh
cmp.w #80,$26(a5)
beq DoEighth
; cmp.w #90,$26(a5)
; beq DoNinth
; cmp.w #100,$26(a5)
; beq DoTenth
bra Window1IDCMP
DoFirst: clr.l d2
clr.l d3
cmp.w #00,DirMode
bne DoFirst2
lea FirstCmd1,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
DoFirst2: lea FirstCmd2,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
DoSecond: clr.l d2
clr.l d3
cmp.w #00,DirMode
bne DoSecond2
lea SecondCmd1,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
DoSecond2: lea SecondCmd2,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
DoThird: clr.l d2
clr.l d3
cmp.w #00,DirMode
bne DoThird2
lea ThirdCmd1,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
DoThird2: lea ThirdCmd2,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
DoFourth: clr.l d2
clr.l d3
cmp.w #00,DirMode
bne DoFourth2
lea FourthCmd1,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
DoFourth2: lea FourthCmd2,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
DoFifth: clr.l d2
clr.l d3
cmp.w #00,DirMode
bne DoFifth2
lea FifthCmd1,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
DoFifth2: lea FifthCmd2,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
DoSixth: clr.l d2
clr.l d3
cmp.w #00,DirMode
bne DoSixth2
lea SixthCmd1,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
DoSixth2: lea SixthCmd2,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
DoSeventh: clr.l d2
clr.l d3
cmp.w #00,DirMode
bne DoSeventh2
lea SeventhCmd1,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
DoSeventh2: lea SeventhCmd2,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
DoEighth: clr.l d2
clr.l d3
cmp.w #00,DirMode
bne DoEighth2
lea EighthCmd1,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
DoEighth2: lea EighthCmd2,a0
move.l a0,d1
lib Dos,Execute
bra Window1IDCMP
About: bsr SleepPointer
bsr MenusOff
bsr RemGads
move.l Window1,a0
lea.l AboutTxt1,a1
move.l #$00,a2 ;positive text
lea.l OKTxt,a3 ;a bit the wrong way around but...
move.l #$00,d0
move.l #$00,d1
move.l #320,d2
move.l #$50,d3
lib Intuition,AutoRequest
bsr AddGads
bsr MenusOn
bsr NormalPointer
bra Window1IDCMP
Break: lea.l BreakText1,a0
bsr Printer
move.l #CLOSEWINDOW,d2 ;fake closewindow...
move.l #-1,d0
rts
ShutDown:
ShutDown7000: tst.l PubScreen
beq ShutDown6000
sub.l a0,a0
move.l PubScreen,a1
lib Intuition,UnlockPubScreen
ShutDown6000: bsr CloseWin1
bsr Clean2.0Magic
ShutDown4000: tst.l NILFile
beq ShutDown3000
move.l NILFile,d1
lib Dos,Close
ShutDown3000: tst.l DiskObject
beq ShutDown2000
move.l DiskObject,a0
lib Icon,FreeDiskObject
ShutDown2000: move.l OldLock,d1
beq ShutDown1050
lib Dos,CurrentDir
ShutDown1050: move.l WBMsg,d2
beq ShutDown1010
lib Exec,Forbid
move.l d2,a1
flib Exec,ReplyMsg
ShutDown1010: tst.l _DOSBase ;transfered after '?' check
beq ShutDown1000
lea.l QuitCmd,a0 ;Quit MPlay too..
move.l a0,d1
clr.l d2
clr.l d3
lib Dos,Execute
ShutDown1000: closlib Icon
closlib Intuition
closlib GadTools
closlib Dos
pull d2-d7/a2-a6
clr.l d0
rts
;CheckIDCMP keyboard (CTRL_C) and Intuition.
;Give it the window structure in a0
CheckIDCMP: move.l $56(a0),a2 ;Get window's port
clr.l d1 ;Set signals for
clr.l d0
move.b $0f(a2),d1 ;IntuiMessages,
bset.l d1,d0
bset.l #SIGBREAKB_CTRL_C,d0 ;and CTRL_C
lib Exec,Wait
cmp.l #SIGBREAKF_CTRL_C,d0 ;If CTRL_C
beq Break ;go break
C2GetMsg1: move.l a2,a0
lib GadTools,GT_GetIMsg
tst.l d0
beq C2GetMsg2
move.l d0,a1
move.l $14(a1),d2 ;answers with Class in d2,
move.w $18(a1),d3 ;Code in d3 and
move.w $1a(a1),a4 ;Qualifier in a4
move.l $1c(a1),a5 ;IAddress in a5
lib GadTools,GT_ReplyIMsg
bra C2GetMsg1
C2GetMsg2: move.l #-1,d0
rts
;Newer MenuNull subroutine
MenuNull: move.w d3,d0
and.w #$1f,d0
move.w d0,d6
move.w d3,d0
lsr.w #5,d0
move.w d0,d1
and.w #$3f,d0
move.w d0,d5
lsr.w #6,d1
move.w d1,d4
rts
ChangeDirMode: add.w #$01,DirMode
cmp.w #$02,DirMode
bne Window1IDCMP
move.w #$00,DirMode
bra Window1IDCMP
SleepPointer: move.l Window1,a0
lea.l ClockPointer1,a1
move.l #16,d0
move.l #16,d1 ;WHAT-THE-HECK IS THIS FOR?
move.l #-6,d2
move.l #0,d3
lib Intuition,SetPointer
rts
NormalPointer: move.l Window1,a0
lib Intuition,ClearPointer
rts
MenusOn: move.l Window1,a0
move.l mlist,a1
lib Intuition,SetMenuStrip
rts
MenusOff: move.l Window1,a0
lib Intuition,ClearMenuStrip
rts
RemGads: move.l Window1,a0
move.l DirGad1,a1
sub.l a2,a2
move.l #-1,d0
lib Intuition,RemoveGList
rts
AddGads: move.l Window1,a0
move.l DirGad1,a1
sub.l a2,a2
move.l #-1,d0
move.l #-1,d1
lib Intuition,AddGList
move.l DirGad1,a0
move.l Window1,a1
sub.l a2,a2
move.l #-1,d0
lib Intuition,RefreshGList
move.l Window1,a0
sub.l a1,a1
lib GadTools,GT_RefreshWindow
rts
;Lock PublicScreen
LockPubScr: sub.l a0,a0
lib Intuition,LockPubScreen
move.l d0,PubScreen
beq LockPubScr_OUT
;Get some sizes
move.l PubScreen,a0
move.b sc_BarHeight(a0),d0
add.b #1,d0
move.b d0,BHeight+1
move.w BHeight,d5
add.w d5,SmallYSize
add.w d5,WinYSize
LockPubScr_OUT: rts
;Open Window
OpenWin1: tst.w Iconify
beq OpenWin1.01
lea.l NewWindow1,a0
and.l #~ACTIVATE,nw_Flags(a0)
move.l NewWindow1,ZoomXY
move.l NewWindow1+4,ZoomXY+4
move.l Alt1XY,nw_LeftEdge(a0)
move.w #160,nw_Width(a0)
move.w BHeight,nw_Height(a0)
OpenWin1.01: lea.l NewWindow1,a0
lea.l Win1TagList,a1
lib Intuition,OpenWindowTagList
move.l d0,Window1
beq OpenWin1_ERR1
bsr AddGads
OpenWin1.1: move.l Window1,a0
move.l mlist,a1
lib Intuition,SetMenuStrip
move.l #-1,d0
rts
OpenWin1_ERR1: clr.l d0
rts
CloseWin1: tst.l Window1
beq CloseWin1_OUT
bsr RemGads
CloseWin1.1: move.l Window1,a0
lib Intuition,ClearMenuStrip
move.l Window1,a3
bsr ClearMSGs
CloseWin1_OUT: clr.l Window1
rts
;ClearMsgs subroutine
;a3 = window structure
ClearMSGs: lib Exec,Forbid
move.l Window1,a3
move.l $56(a3),a2
ClearMsg1: move.l a2,a0
flib Exec,GetMsg
tst.l d0
beq ClearMsg2
move.l d0,a1
flib Exec,ReplyMsg
bra ClearMsg1
ClearMsg2: move.l a3,a0
lib Intuition,CloseWindow
lib Exec,Permit
ClearMsg3: rts
Clean2.0Magic: tst.b GadMagic
beq Clean2.0M2
move.l glist,a0
lib GadTools,FreeGadgets
Clean2.0M2: tst.b MenuMagic
beq Clean2.0M3
move.l mlist,a0
lib GadTools,FreeMenus
Clean2.0M3: tst.l vi
beq Clean2.0_OUT
move.l vi,a0
lib GadTools,FreeVisualInfo
Clean2.0_OUT: rts
;Error etc. messages
Usage: lea.l UsageText1,a0
bsr Printer
bra ShutDown
NoDos: add.l #8,sp
pull d2-d7/a2-a6
move.l #RETURN_FAIL,d0
rts
NoKS20: lea.l NoKS20Text1,a0
bsr Printer
bra ShutDown
NoGadTools: lea.l NoGTText1,a0
bsr Printer
bra ShutDown
NoNIL: lea.l NoNILText1,a0
bsr Printer
bra ShutDown
NoIcon: lea.l NoIconText1,a0
bsr Printer
bra ShutDown
NoPubScreen: lea.l NoPubScrText1,a0
bsr Printer
bra ShutDown
NoWindow1: lea.l NoWindowText1,a0
bsr Printer
bra ShutDown
NoContextGad: lea.l NoContextText1,a0
bsr Printer
bra ShutDown
NoMenus: lea.l NoMenusText1,a0
bsr Printer
bra ShutDown
Printer: printa a0,_stdout
rts
DoAutoRequest: move.l #$00,a2 ;positive text
lea.l OKTxt(pc),a3 ;a bit the wrong way around but...
move.l #$00,d0
move.l #$00,d1
move.l #$00,d2
move.l #$00,d3
sub.l a0,a0
lib Intuition,AutoRequest
rts
;Structures
;GadTools stuff
vi: dc.l 0 ;Visual Info
mlist: dc.l 0
ContextGad2: dc.l 0
GadMagic: dc.b 0
MenuMagic: dc.b 0
;Gadgets
DirGad1: dc.l 0
FirstGad1: dc.l 0
SecondGad1: dc.l 0
ThirdGad1: dc.l 0
FourthGad1: dc.l 0
FifthGad1: dc.l 0
SixthGad1: dc.l 0
SeventhGad1: dc.l 0
EighthGad1: dc.l 0
QuitGad1: dc.l 0
;display stuff
PubScreen: dc.l 0
Window1: dc.l 0
BHeight: dc.w 0
Iconify: dc.w 0 ;(1 = Yes, please)
;lib stuff
_SysBase: dc.l 0
_DOSBase: dc.l 0
libnames
;Other stuff, part I
OurTask: dc.l 0
NILFile: dc.l 0
_stdout: dc.l 0
WBMsg: dc.l 0
DiskObject: dc.l 0
OldLock: dc.l 0
DirMode: dc.w 0
;Strings, AREXX filenames
FirstCmd1: dc.b "SYS:REXXC/RX REXX2:MP1st",0
FirstCmd2: dc.b "SYS:REXXC/RX REXX2:MP1st2",0
SecondCmd1: dc.b "SYS:REXXC/RX REXX2:MP2nd",0
SecondCmd2: dc.b "SYS:REXXC/RX REXX2:MP2nd2",0
ThirdCmd1: dc.b "SYS:REXXC/RX REXX2:MP3rd",0
ThirdCmd2: dc.b "SYS:REXXC/RX REXX2:MP3rd2",0
FourthCmd1: dc.b "SYS:REXXC/RX REXX2:MP4th",0
FourthCmd2: dc.b "SYS:REXXC/RX REXX2:MP4th2",0
FifthCmd1: dc.b "SYS:REXXC/RX REXX2:MP5th",0
FifthCmd2: dc.b "SYS:REXXC/RX REXX2:MP5th2",0
SixthCmd1: dc.b "SYS:REXXC/RX REXX2:MP6th",0
SixthCmd2: dc.b "SYS:REXXC/RX REXX2:MP6th2",0
SeventhCmd1: dc.b "SYS:REXXC/RX REXX2:MP7th",0
SeventhCmd2: dc.b "SYS:REXXC/RX REXX2:MP7th2",0
EighthCmd1: dc.b "SYS:REXXC/RX REXX2:MP8th",0
EighthCmd2: dc.b "SYS:REXXC/RX REXX2:MP8th2",0
QuitCmd: dc.b "SYS:REXXC/RX REXX2:MPQuit",0
;Strings, error
BreakText1: dc.b "***Break",10,0
NoKS20Text1: dc.b "ERROR: You need Kickstart 2.0 or higher!",10,0
NoGTText1: dc.b "ERROR: Couldn't open gadtools.library!",10,0
NoNILText1: dc.b "ERROR: Couldn't open device NIL:!",10,0
NoIconText1: dc.b "ERROR: Couldn't open icon.library!",10,0
NoPubScrText1: dc.b "ERROR: Couldn't lock PublicScreen",10,0
NoContextText1: dc.b "ERROR: Couldn't create context gadget",10,0
NoMenusText1: dc.b "ERROR: Couldn't allocate menus structure",10,0
NoWindowText1: dc.b "ERROR: Couldn't open Window",10,0
;Strings, names
RDVersion: dc.b "$VER: "
UsageText1: dc.b "BlinyzPlay 1.03 (10.6.92). (C)opyright Tomi Blinnikka 1992",10,10
dc.b 10," !!! PRIVATE VERSION !!!",10,10,10
dc.b "USAGE: BlinyzPlay [-i]",10,10
dc.b " Where: [-i] iconify on startup",10,10
dc.b "Plays my own tunes from MODULES: or MODULES2:",10
dc.b "Needs special AREXX-scripts and Juha Koivisto's",10
dc.b "MPlay. Not much use to anyone else but me.",10,10
dc.b "See docs for more information.",10,0
RDName1: dc.b "BlinyzPlay",0
OKText1: dc.b "OK",0
NILName: dc.b "NIL:",0
ICONIFYText1: dc.b "ICONIFY",0
YESText1: dc.b "YES",0
AboutText1: dc.b "Name : BlinyzPlay",0
AboutText2: dc.b "Version: 1.03",0
AboutText3: dc.b "Author : Tomi Blinnikka",0
AboutText4: dc.b " (C)opyright 1992",0
ds.l 0
;New screen & new window structures
NewWindow1: dc.w 470,35 ;X,Y POS
dc.w 160 ;WIDTH
WinYSize: dc.w 112 ;HEIGHT
dc.b 0,1 ;PENS
dc.l CLOSEWINDOW!VANILLAKEY!MENUPICK!GADGETUP ;IDCMP FLAGS
dc.l NOCAREREFRESH!WINDOWDRAG!WINDOWDEPTH!WINDOWCLOSE!ACTIVATE ;FLAGS
dc.l 0,0 ;GADGETS, CHECKMARK
dc.l RDName1 ;TITLE
dc.l 0 ;SCREEN ADDRESS
dc.l 0 ;BITMAP
dc.w 0,0,0,0 ;MIN/MAX SIZE
dc.w PUBLICSCREEN ;TYPE
Win1TagList: dc.l WA_AutoAdjust,TRUE
dc.l WA_Zoom,ZoomXY
dc.l TAG_DONE,0
ZoomXY:
SmallXPos: dc.w 470
SmallYPos: dc.w 35
SmallXSize: dc.w 160
SmallYSize: dc.w 0
Alt1XY:
Alt1XPos: dc.w 470
Alt1YPos: dc.w 35
;Fonts
Topaz: dc.l TopazName
dc.w 8
dc.b 0
dc.b 0
TopazName: dc.b "topaz.font",0
ds.l 0
;ITextStructures
OKTxt: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 6,3 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l OKText1 ;TEXT
dc.l 0 ;NEXTTEXT
AboutTxt1: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,0 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l AboutText1 ;TEXT
dc.l AboutTxt2 ;NEXTTEXT
AboutTxt2: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,10 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l AboutText2 ;TEXT
dc.l AboutTxt3 ;NEXTTEXT
AboutTxt3: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,20 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l AboutText3 ;TEXT
dc.l AboutTxt4 ;NEXTTEXT
AboutTxt4: dc.b 1,2 ;PENS
dc.w 0 ;MODE
dc.w 0,30 ;LEFT+TOPEDGE
dc.l 0 ;FONT
dc.l AboutText4 ;TEXT
dc.l 0 ;AboutTxt5 ;NEXTTEXT
;Gadgets
DirLabels: dc.l DirLabel1,DirLabel2,0
DirLabel1: dc.b "MODULES:",0
DirLabel2: dc.b "MODULES2:",0
FirstGadText1: dc.b "_Live2Dance",0
SecondGadText1: dc.b "_WTTJ",0
ThirdGadText1: dc.b "_It's My Country",0
FourthGadText1: dc.b "_BlinyzQ51",0
FifthGadText1: dc.b "_Spanish Fly",0
SixthGadText1: dc.b "_Track51 - Remix",0
SeventhGadText1: dc.b "B_eyond Life",0
EighthGadText1: dc.b "Wi_nner",0
QuitGadText1: dc.b "_Quit",0
ds.l 0
glist: dcb.b gg_SIZEOF,0
NGDirGad: dc.w 30 ;gng_LeftEdge
dc.w DirTop ;gng_TopEdge
dc.w 100 ;gng_Width
dc.w 12 ;gng_Height
dc.l 0 ;gng_GadgetText
dc.l Topaz ;gng_TextAttr
dc.w 1 ;gng_GadgetID
dc.l PLACETEXT_IN ;gng_Flags
dc.l 0 ;gng_VisualInfo
dc.l 0 ;gng_UserData
NGFirstGad: dc.w 4 ;gng_LeftEdge
dc.w ListTop ;gng_TopEdge
dc.w 160-8 ;gng_Width
dc.w 10 ;gng_Height
dc.l FirstGadText1 ;gng_GadgetText
dc.l Topaz ;gng_TextAttr
dc.w 10 ;gng_GadgetID
dc.l PLACETEXT_IN ;gng_Flags
dc.l 0 ;gng_VisualInfo
dc.l 0 ;gng_UserData
NGSecondGad: dc.w 4 ;gng_LeftEdge
dc.w ListTop+10 ;gng_TopEdge
dc.w 160-8 ;gng_Width
dc.w 10 ;gng_Height
dc.l SecondGadText1 ;gng_GadgetText
dc.l Topaz ;gng_TextAttr
dc.w 20 ;gng_GadgetID
dc.l PLACETEXT_IN ;gng_Flags
dc.l 0 ;gng_VisualInfo
dc.l 0 ;gng_UserData
NGThirdGad: dc.w 4 ;gng_LeftEdge
dc.w ListTop+20 ;gng_TopEdge
dc.w 160-8 ;gng_Width
dc.w 10 ;gng_Height
dc.l ThirdGadText1 ;gng_GadgetText
dc.l Topaz ;gng_TextAttr
dc.w 30 ;gng_GadgetID
dc.l PLACETEXT_IN ;gng_Flags
dc.l 0 ;gng_VisualInfo
dc.l 0 ;gng_UserData
NGFourthGad: dc.w 4 ;gng_LeftEdge
dc.w ListTop+30 ;gng_TopEdge
dc.w 160-8 ;gng_Width
dc.w 10 ;gng_Height
dc.l FourthGadText1 ;gng_GadgetText
dc.l Topaz ;gng_TextAttr
dc.w 40 ;gng_GadgetID
dc.l PLACETEXT_IN ;gng_Flags
dc.l 0 ;gng_VisualInfo
dc.l 0 ;gng_UserData
NGFifthGad: dc.w 4 ;gng_LeftEdge
dc.w ListTop+40 ;gng_TopEdge
dc.w 160-8 ;gng_Width
dc.w 10 ;gng_Height
dc.l FifthGadText1 ;gng_GadgetText
dc.l Topaz ;gng_TextAttr
dc.w 50 ;gng_GadgetID
dc.l PLACETEXT_IN ;gng_Flags
dc.l 0 ;gng_VisualInfo
dc.l 0 ;gng_UserData
NGSixthGad: dc.w 4 ;gng_LeftEdge
dc.w ListTop+50 ;gng_TopEdge
dc.w 160-8 ;gng_Width
dc.w 10 ;gng_Height
dc.l SixthGadText1 ;gng_GadgetText
dc.l Topaz ;gng_TextAttr
dc.w 60 ;gng_GadgetID
dc.l PLACETEXT_IN ;gng_Flags
dc.l 0 ;gng_VisualInfo
dc.l 0 ;gng_UserData
NGSeventhGad: dc.w 4 ;gng_LeftEdge
dc.w ListTop+60 ;gng_TopEdge
dc.w 160-8 ;gng_Width
dc.w 10 ;gng_Height
dc.l SeventhGadText1 ;gng_GadgetText
dc.l Topaz ;gng_TextAttr
dc.w 70 ;gng_GadgetID
dc.l PLACETEXT_IN ;gng_Flags
dc.l 0 ;gng_VisualInfo
dc.l 0 ;gng_UserData
NGEighthGad: dc.w 4 ;gng_LeftEdge
dc.w ListTop+70 ;gng_TopEdge
dc.w 160-8 ;gng_Width
dc.w 10 ;gng_Height
dc.l EighthGadText1 ;gng_GadgetText
dc.l Topaz ;gng_TextAttr
dc.w 80 ;gng_GadgetID
dc.l PLACETEXT_IN ;gng_Flags
dc.l 0 ;gng_VisualInfo
dc.l 0 ;gng_UserData
NGQuitGad: dc.w -110 ;gng_LeftEdge
dc.w OptionTop ;gng_TopEdge
dc.w 60 ;gng_Width
dc.w 12 ;gng_Height
dc.l QuitGadText1 ;gng_GadgetText
dc.l Topaz ;gng_TextAttr
dc.w 99 ;gng_GadgetID
dc.l PLACETEXT_IN ;gng_Flags
dc.l 0 ;gng_VisualInfo
dc.l 0 ;gng_UserData
;Gadget TagLists
GadTagList: dc.l GT_Underscore,'_'
dc.l TAG_DONE,0
DirGadTagList: dc.l GTCY_Labels,DirLabels
dc.l TAG_DONE,0
;Menus
Menu1Name: dc.b "Project",0
AboutMenuText1: dc.b "About...",0
AboutCommKey: dc.b "?",0
QuitMenuText1: dc.b "Quit",0
QuitCommKey: dc.b "Q",0
ds.l 0
MNProjectMenu1: dc.b NM_TITLE ;gnm_Type
dc.b 0 ;gnm_Pad
dc.l Menu1Name ;gnm_Label
dc.l 0 ;gnm_CommKey
dc.w 0 ;gnm_Flags
dc.l 0 ;gnm_MutualExclude
dc.l 0 ;gnm_UserData
MNAbout1: dc.b NM_ITEM ;gnm_Type
dc.b 0 ;gnm_Pad
dc.l AboutMenuText1 ;gnm_Label
dc.l AboutCommKey ;gnm_CommKey
dc.w 0 ;gnm_Flags
dc.l 0 ;gnm_MutualExclude
dc.l 0 ;gnm_UserData
MNP1SepMenu1: dc.b NM_ITEM ;gnm_Type
dc.b 0 ;gnm_Pad
dc.l NM_BARLABEL ;gnm_Label
dc.l 0 ;gnm_CommKey
dc.w 0 ;gnm_Flags
dc.l 0 ;gnm_MutualExclude
dc.l 0 ;gnm_UserData
MNQuit1: dc.b NM_ITEM ;gnm_Type
dc.b 0 ;gnm_Pad
dc.l QuitMenuText1 ;gnm_Label
dc.l QuitCommKey ;gnm_CommKey
dc.w 0 ;gnm_Flags
dc.l 0 ;gnm_MutualExclude
dc.l 0 ;gnm_UserData
dc.w 0 ;NM_END?
;Menu TagList(s)
MenuTagList: dc.l GTMN_Menu,MNProjectMenu1
dc.l TAG_DONE,0
Section RD,DATA,CHIP
ds.w 0
ClockPointer1: dc.w $0000,$0000
dc.w $0400,$07C0,$0000,$07C0,$0100,$0380,$0000,$07E0
dc.w $07C0,$1FF8,$1FF0,$3FEC,$3FF8,$7FDE,$3FF8,$7FBE
dc.w $7FFC,$FF7F,$7EFC,$FFFF,$7FFC,$FFFF,$3FF8,$7FFE
dc.w $3FF8,$7FFE,$1FF0,$3FFC,$07C0,$1FF8,$0000,$07E0
dc.w $0000,$0000
end